<?php
require_once 'models/user/user.php';
require_once 'handlers/user/_BaseAuthHandler.php';
/**
 * Хендлер авторизации
 **/ 
class AuthorizeHandler extends BaseAuthHandler{


  protected
    $action = false,
    $email = false,
    $password = false;

	public function setParams($params){  
    if (isset($params['action']) && !empty($params['action'])) $this->action = $params['action'];
    if (isset($params['email']) && !empty($params['email'])) $this->email = $params['email'];
    if (isset($params['password']) && !empty($params['password'])) $this->password = $params['password'];
	}

	public function process(){
    // Вход в систему
    if ($this->action=='auth_login_email'){
      if (!empty($this->email) && !empty($this->password)){
        //достаём запись авторизации
        include_once 'models/user/user_auth.php';
        $auth = UserAuthModel::getBykeys($this->email, $this->getEncodedPassword(), 'email');
        // Если такая есть, достаём пользователя
        if ($auth && isset($auth->data['user_id'])){
          $user = UserModel::getByUserID($auth->data['user_id']);
          if ($user){
            $this->saveUserSession($user);
            return $user;
          }
        }
      }
    }
    // Выход из системы
    elseif ($this->action=='auth_logout'){
      $this->clearUserSession();
      return false;
    }
    // Попытка авторизации по сессии
    else{
      $user = $this->getUserSession();
      if ($user) return $user;
    }

		return false;
	}


}
?>
